#!/bin/bash
#
# Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved.
#
# See LICENSE.txt for license information
#

# To run from $BUILDDIR/

cd ..
NCCLDIR=`basename $PWD`

echo "Checking for unclean directory ..."
git clean -x -i
echo "Clean done."
echo "Checking for uncommited files ..."
if [ "`git status -s | wc -l`" != "0" ]; then
  git status -s
  echo "Some changes are not committed yet. Continue ? (Ctrl-C to abort)"
  read
fi

cd ..
NCCL_MAJOR=${nccl:Major}
NCCL_MINOR=${nccl:Minor}
NCCL_PATCH=${nccl:Patch}
NCCL_SUFFIX=${nccl:Suffix}
NCCL_BUILD=${pkg:Revision}

NCCLNAME="nccl-src_${NCCL_MAJOR}.${NCCL_MINOR}.${NCCL_PATCH}${NCCL_SUFFIX}-${NCCL_BUILD}"
if [ "${SRCTXZ_APITESTS}" = "1" ]; then
  NCCLNAME+="-apitest"
fi


INCLUDE_TEST_ENTRIES=("apitest" "googletest" "gtest.mk")

if [ "${SRCTXZ_APITESTS}" = "1" ]; then
  # Exclude all entries inside test folder except those in INCLUDE_TEST_ENTRIES
  for entry in $(ls $NCCLDIR/test); do
    if [[ ! " ${INCLUDE_TEST_ENTRIES[@]} " =~ " $entry " ]]; then
      EXCLUDE_TEST+=" --exclude $NCCLDIR/test/$entry"
    fi
  done
else
  # Exclude the entire test directory
  EXCLUDE_TEST+=" --exclude test"
fi

tar --exclude fortran \
    --exclude doc \
    --exclude plc \
    --exclude build \
    --exclude ".git*" \
    --exclude share \
    --exclude ompi \
    --exclude ext-net \
    --exclude pkg/srctxz \
    --exclude docker \
    $EXCLUDE_TEST \
    --transform "s/^$NCCLDIR/$NCCLNAME/" -Jcf $NCCLNAME.txz --owner=0 --group=0 $NCCLDIR
